One common large scale data storage system is the Redundant Array of Independent Disks (RAID). RAID data storage systems include multiple independent data storage devices, controlled by a single computer, which may be utilized as though they were a single unit. RAID data storage systems generally include some mechanism to recover data in the event one of the independent data storage devices fails. For example, in a RAID 5 data storage system, all of the independent data storage devices are organized into logical stripes such that each logical stripe includes one logical data block from each data storage device. One logical data block in each logical stripe contains data produced by performing an exclusive disjunction operation on all of the other data blocks in the logical stripe. When a data storage device in a RAID 5 data storage system fails, each data block on the failed data storage device can be recovered by performing an exclusive disjunction operation on all of the other data blocks in the same logical stripe.
As data storage device capacity has increased, the time to rebuild a failed data storage device has increased many times. In a RAID data storage system with data storage devices having terabytes of capacity, rebuilds can take hours or days. During a rebuild, a data storage system may be vulnerable; a data storage device failure during rebuild may result in data loss. Also, data retrieval from a data storage system during rebuild may be slow because the rebuild process creates additional processor overhead. In degraded condition, retrieved data has to be rebuilt (from parity) and is not readily available as in optimal drives. For example, if the data to be rebuilt falls on the failed disk, all other disks must be read and parity calculated, to get data on failed disk. That is the primary reason of slow performance of degraded systems.
Rebuild operations may be accelerated by skipping empty portions of a data storage device, but mechanisms for tracking empty portions of data storage devices are cumbersome, create significant overhead, and may require substantial amounts of metadata to implement.
Consequently, it would be advantageous if data storage architecture and method existed that were suitable for reducing rebuilt time in a RAID data storage system.